package b;

import org.junit.Test;

import java.util.Stack;

//先在草纸上写完整代码,中途发现代码有问题立刻回草纸画别直接敲！
/*
输入：pushed = [1,2,3,4,5], popped = [4,3,5,1,2]
输出：false
解释：1 不能在 2 之前弹出。
 */
public class _7_栈的入栈出栈序列是否可能 {

    public boolean validateStackSequences(int[] pushed, int[] popped) {
        Stack<Integer> ruzhans = new Stack<>();//入栈其实也要ind，但是for:each即可
        int j=0;//出栈ind
        //
        for(int x : pushed){
            ruzhans.push(x);
            while(!ruzhans.isEmpty() && popped[j]==ruzhans.peek()){
                ruzhans.pop();
                j++;
            }
        }
        //
        if(j==popped.length)return true;
        return false;
    }
}
